<?php
/**
Exibe para os usu�rios com perfil 'diretor' os processos de compra que est�o pendentes.
Permite ao diretor aprovar ou reprovar algum processo.
*/

if(!isset($_SESSION))
{
   session_start();
}

if( !function_exists('__autoload') )
{
    function __autoload($class_name) {
    require_once $class_name . '.php';
    }
}

SAEO::ValidarAcesso( array( 0, 2, 3, 4 ) );

$processotemp = new Processo();
$servidor = new Servidor();

$servidorLogado = $servidor->CarregarServidor( $_SESSION['servidorId'] );
$processo = $processotemp->CarregarProcessosPorStatus( $servidorLogado );

/**
Esta condi��o s� ser� verdadeira quando o usu�rio tiver escolhido algum processo para ser aprovado.
Quando isto acontecer, enviado para esta mesma p�gina um formul�rio via POST com o campos:
identificador do processo no banco de dados, parecer do processo e um status identificando se o processo foi aprovado ou reprovado.
*/
if( count($_POST ) != 0 )
{
      $processoId = $_POST['processoId'];
      $parecer = $_POST['parecer'.$processoId];
      $status = $_POST['status'];
      $protocolo = $_POST['protocolo'];
      $diretor = new Diretor();
      if( $status == 1 )
      {
          $diretor->Aprovar( $processoId, $parecer, $protocolo );
      }
      else if( $status == 2 )
      {
          $diretor->Reprovar( $processoId, $parecer, $protocolo );
      }

      header("Location: ExibirProcessos.php");

}


$processoSerializado = serialize($processo);
$processoSerializado = urlencode($processoSerializado);
?>
<html>
           <head>
           <title>SAEO - Processos a serem avaliados</title>
           <link rel='stylesheet' type='text/css' href='templates/estilos.css'>
           <script type='text/javascript' src='templates/hintbox.js'></script>
           <script type='text/javascript' src='templates/ajax.js'></script>
           <script type='text/javascript' src='templates/ajax-dynamic-content.js'></script>
           
           <script>
           function EnviarFormulario( valor  )
           {
                document.getElementById('processoId').value=valor;
                document.getElementById('avaliar_processos').submit();
           }
           
           function CarregarCategorias()
		   {
		         var ajax = new sack();
		         var url = "http://localhost/leonardo/classes/CarregarDados.php?informacao=categorias";
		         ajax.requestFile = url;
		         // Ao terminar de executar a chamada AJAX, o XML retornado da consulta ser� transformado em um array javascript
		         ajax.onCompletion = function()
		         {
		            var categoriasCadastradas = ProcessarXMLCategoria( ajax.responseXML );
		            CriarCamposCategoria( categoriasCadastradas );
		         };
		
		         ajax.runAJAX();
          }
          
			/**
			Processa um documento XML com as categorias e o transforma em um array Javascript
			@return Retorna um Array Javascript com as informa��es das categorias
			*/
			function ProcessarXMLCategoria( xml )
			{
			         categorias = new Array();
			         var categoriaXML = xml.getElementsByTagName("categoria");
			
			         if( categoriaXML.length > 0) // verifica se houveram resultados
			         {
			             for(var i=0; i < categoriaXML.length; i++) // percorre o resultado
			             {
			                     var categoria = categoriaXML[i];
			                     var categoriaId = categoria.getElementsByTagName("id")[0].firstChild.nodeValue;
			                     var categoriaNome = categoria.getElementsByTagName("nome")[0].firstChild.nodeValue;
			                     categorias[i] = new Array();
			                     categorias[i][0] = categoriaId;
			                     categorias[i][1] = categoriaNome;
			             }
			         }
			
			         return categorias;
			}
			
			function CriarCamposCategoria( categorias )
			{
			         var selectCategoria = document.getElementById("filtro1");
			         var optionCategoria = document.getElementById("optFiltro1");
			         
			         for(var i = selectCategoria.length-1; i>=1; i--)
			         {
			                 selectCategoria.remove(i);
			         }
			
			         if( categorias.length == 0 ) // nenhuma categoria est� cadastrada
			         {
			              optionCategoria.innerHTML = "Nenhuma categoria cadastrada";
			         }

			         for( var x in categorias )
			         {
			              // adiciona um novo 'option' ao campo select com o setor encontrado
			              var novoElementoCategoria = document.createElement("option");
			              novoElementoCategoria.setAttribute("id", "opcoes");
			              novoElementoCategoria.value = categorias[x][0];
			              novoElementoCategoria.text  = categorias[x][1];
			              selectCategoria.options.add(novoElementoCategoria);
			         }
			}
              
		   /**
			Carrega do banco de dados os servicos em formato XML.
			*/
			function CarregarServicos()
			{
			         var ajax = new sack();
			         var url = "http://localhost/leonardo/classes/CarregarDados.php?informacao=servicos";
			         ajax.requestFile = url;
			         // Ao terminar de executar a chamada AJAX, o XML retornado da consulta ser� transformado em um array javascript
			         ajax.onCompletion = function()
			         {
			            var servicosCadastrados = ProcessarXMLServico( ajax.responseXML );
			            CriarCamposServicos( servicosCadastrados );
			         };
			         ajax.runAJAX();
			}
			
			/**
			Processa um documento XML com as categorias e o transforma em um array Javascript
			@return Retorna um Array Javascript com as informa��es das categorias
			*/
			function ProcessarXMLServico( xml )
			{
			         servicos = new Array();
			         if( xml == null )
			         {
			             return false;
			         }
			
			         var servicoXML = xml.getElementsByTagName("servico");
			
			         if( servicoXML.length > 0) // verifica se houveram resultados
			         {
			             for(var i=0; i < servicoXML.length; i++) // percorre o resultado
			             {
			                     var servico = servicoXML[i];
			                     var servicoId = servico.getElementsByTagName("id")[0].firstChild.nodeValue;
			                     var servicoCatServ = servico.getElementsByTagName("catserv")[0].firstChild.nodeValue;
			                     var servicoNome = servico.getElementsByTagName("nome")[0].firstChild.nodeValue;
			                     var servicoDescricao = servico.getElementsByTagName("descricao")[0].firstChild.nodeValue;
			                     servicos[i] = new Array();
			                     servicos[i][0] = servicoId;
			                     servicos[i][1] = servicoNome;
			             }
			         }
			
			         return servicos;
			}	

			function CriarCamposServicos( servicos )
			{
			         var selectFiltro1 = document.getElementById("filtro1");
			         var optionFiltro1 = document.getElementById("optFiltro1");
			         
			         for(var i = selectFiltro1.length-1; i>=1; i--) // remove elementos anteriores
			         {
			                 selectFiltro1.remove(i);
			         }
			
			         if( servicos.length == 0 ) // nenhum servi�o cadastrado
			         {
			              optionFiltro1.innerHTML = "Nenhum servi�o cadastrado";
			         }

			         for( var x in servicos )
			         {
			              // adiciona um novo 'option' ao campo select com o setor encontrado
			              var novoElementoFiltro1 = document.createElement("option");
			              novoElementoFiltro1.setAttribute("id", "opcoes");
			              novoElementoFiltro1.value = servicos[x][0];
			              novoElementoFiltro1.text  = servicos[x][1];
			              selectFiltro1.options.add(novoElementoFiltro1);
			         }
			}

			function CarregarFiltro0( valor )
	           {
	           		switch( valor )
	           		{
	           			case 0:
	           				ajax_loadContent('processos','CarregarProcessosPendentes.php');
	           				//document.getElementById('divFiltro1').style.display = 'none';
	           				document.getElementById('divFiltro2').style.display = 'none';
	           				break;
	           			case 1:
	           				ajax_loadContent('processos','CarregarProcessosPendentes.php?tipo=1');
	           				//document.getElementById('divFiltro1').style.display = 'block';
	           				document.getElementById("objeto").selectedIndex = 0;
	           				break;
	           			case 2:
	           				ajax_loadContent('processos','CarregarProcessosPendentes.php?tipo=2');
	           				//document.getElementById('divFiltro1').style.display = 'block';
	           				break;
	           		}
	           }
			
           function CarregarFiltro1( valor )
           {
               	var tipo = parseInt(document.getElementById('tipo').value);
           		switch( valor )
           		{
           			case 0: // todos
           				ajax_loadContent('processos','CarregarProcessosPendentes.php?tipo='+tipo);
           				document.getElementById('divFiltro2').style.display = 'none';
           				break;
           			case 1:
           				ajax_loadContent('processos','CarregarProcessosPendentes.php?tipo='+tipo+"&especificacao="+valor);
           				document.getElementById('textoFiltro2').innerHTML = 'Filtrar por Categoria:';
           				document.getElementById('divFiltro2').style.display = 'block';
           				CarregarCategorias();
           				break;
           			case 2:
           				ajax_loadContent('processos','CarregarProcessosPendentes.php?tipo='+tipo+"&especificacao="+valor);
           				document.getElementById('textoFiltro2').innerHTML = 'Filtrar por Servi�o:';
           				document.getElementById('divFiltro2').style.display = 'block';
           				CarregarServicos();
           				break;
           		}
           }
           function CarregarFiltro2( valor )
           {
           		var tipo = parseInt(document.getElementById('tipo').value);
           		var objeto = parseInt(document.getElementById('objeto').value);

           		switch( valor )
           		{
           			case 0:
           				ajax_loadContent('processos','CarregarProcessosPendentes.php?tipo='+tipo+"&especificacao="+objeto);
           				break;
           			default:
           				ajax_loadContent('processos','CarregarProcessosPendentes.php?tipo='+tipo+"&especificacao="+objeto+"&subespecificacao="+valor);
           				
           		}
           		

           }
           </script>
           </head>
     <body class='body' onload='ajax_loadContent("processos","CarregarProcessosPendentes.php");'>
     <form name='avaliar_processos' method='post' action='ExibirProcessoDetalhado.php' id='avaliar_processos'>
     <input type='hidden' value='<?php echo $processoSerializado ?>' name='processoSerializado'>
     <input type='hidden' id='processoId' name='id'>
     <table width='779' border='0' cellspacing='0' cellpadding='0' align='center' bgcolor='#FFFFFF' >
            <tr>
                <td>
                <?php include 'Topo.php'; ?>
                </td>
            </tr>
            <tr>
                <td><div class='titulosTabelas' style='width:779; height:20; background:url(templates/tabela.jpg)'>Exibir Processos</div></td>
            </tr>
            <tr>
                <td colspan='2'>&nbsp;</td>
            </tr>
     		<?php 
     		if( $_SESSION['servidorPerfil'] == 4 )
     		{
     		?>
     		<tr>
     					<td>
     						<table width='100%' border='0' cellspacing='5' cellpadding='1'>
			     				<tr>
			     					<td class='textoTabelas' style='text-align:right;width:50%'>Filtrar por Tipo:</td>
			     					<td style='margin-left:100px'>
				                		<select class='inputTexto' id='tipo' onchange='CarregarFiltro0( parseInt(this.value) );'>
					                		<option value='0'>- Todos -</option>
					                		<option value='1'>Individual</option>
					                		<option value='2'>Juntados</option>
				                		</select>
			                		</td>
			            	     </tr>
			     				<tr>
			     					<td colspan='2'>
			            	     	<div style='display:block' id='divFiltro1'>
			            	     		<table width='100%' border='0' cellspacing='5' cellpadding='1'>
			            	     			<tr>
												<td class='textoTabelas' style='text-align:right;width:50%'>Filtrar por objeto</span></td>        	     		
			            	     	    		<td style='margin-left:100px'>
							                		<select class='inputTexto' id='objeto' onchange='CarregarFiltro1( parseInt(this.value) );'>
								                		<option value='0' selected>- Todos -</option>
								                		<option value='1'>Material</option>
								                		<option value='2'>Servi�os</option>
							                		</select>
					                			</td>
			            	     			</tr>
			            	     		</table>
			            	     	</div>
			            	     	</td> 
			     				
			            	     <tr>
			            	     	<td colspan='2'>
			            	     	<div style='display:none' id='divFiltro2'>
			            	     		<table width='100%' border='0' cellspacing='5' cellpadding='1'>
			            	     			<tr>
												<td class='textoTabelas' style='text-align:right;width:50%'><span id='textoFiltro2'></span></td>        	     		
			            	     	    		<td style='margin-left:10px'>
			            	     	    			<select id='filtro1' class='inputTexto' onchange='CarregarFiltro2( parseInt(this.value) );'>
			            	     						<option id='optFiltro1' value='0'>- Todas -</option>
			            	     					</select>
			            	     				</td>
			            	     			</tr>
			            	     		</table>
			            	     	</div>
			            	     	</td>
			            	     </tr>
            	     		</table>
            	     	</td>
            	     </tr>
            	     <?php 
     		}           
     		?>          
            <tr>
                <td>
                	<div id='processos' style='display:block'>
	                	
	            	</div>
            	</td>
            </tr>
            <tr>
                <td colspan='2'>&nbsp;</td>
            </tr>
            <tfoot>
                   <tr>
                   <?php 
                       include 'rodapeCreditos.php';
                   ?>
            </tr>
            </tfoot>
     </table>
     </form>
     </body>
     </html>